home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
376-400
/
disk_376
/
toollibrary
/
src
/
mathefunktionen.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
3KB
|
86 lines
/********************************************************************/
/**** ****/
/**** ****/
/**** Program : MatheFunktionen ****/
/**** ****/
/**** Version : 01.07 ****/
/**** ****/
/**** Erstversion : 21.05.1988 ****/
/**** ****/
/**** Letzte Änderung : 31.05.1990 ****/
/**** ****/
/**** Compiliert mit : siehe MAKE ****/
/**** ****/
/**** Gelinkt mit : Für Tool.Library ****/
/**** ****/
/********************************************************************/
/**** ****/
/**** ****/
/**** Copyright by Rüdiger Dreier ****/
/**** ****/
/**** ****/
/********************************************************************/
#include "ToolProto.h"
#include <proto/mathieeedoubbas.h>
#include <proto/mathieeedoubtrans.h>
extern struct Library *MathIeeeDoubBasBase;
extern struct Library *MathIeeeDoubTransBase;
VOID __asm Fak(register __a0 DOUBLE *Ziel,
register __d0 LONG i)
{
DOUBLE W2,W3;
if(i>0)
{
Fak(&W2,i-1);
W3=Flt(i);
*Ziel=Mul(W2,W3);
}
else
{
if(i==0)
{
*Ziel=Flt(1);
}
else
{
*Ziel=Flt(-1);
}
}
}
VOID __asm NuK(register __a0 DOUBLE *Ziel,
register __d0 LONG n,
register __d1 LONG k)
{
DOUBLE a,b,c;
Fak(&a,n);
Fak(&b,k);
Fak(&c,n-k);
if(Cmp(a,-1.0)==0)
{
*Ziel=-1.0;
return;
}
if(Cmp(b,-1.0)==0)
{
*Ziel=-1.0;
return;
}
if(Cmp(c,-1.0)==0)
{
*Ziel=-1.0;
return;
}
b=Mul(b,c);
a=Div(a,b);
*Ziel=a;
}